/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Entity Handling</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * vocSet: T13988 (C-0-T13988-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getEntityHandling()
 * @model extendedMetaData="name='EntityHandling'"
 * @generated
 */
public enum EntityHandling implements Enumerator {
	/**
	 * The '<em><b>AMB</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #AMB_VALUE
	 * @generated
	 * @ordered
	 */
	AMB(0, "AMB", "AMB"),

	/**
	 * The '<em><b>C37</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #C37_VALUE
	 * @generated
	 * @ordered
	 */
	C37(1, "C37", "C37"),

	/**
	 * The '<em><b>CAMB</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CAMB_VALUE
	 * @generated
	 * @ordered
	 */
	CAMB(2, "CAMB", "CAMB"),

	/**
	 * The '<em><b>CFRZ</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CFRZ_VALUE
	 * @generated
	 * @ordered
	 */
	CFRZ(3, "CFRZ", "CFRZ"),

	/**
	 * The '<em><b>CREF</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CREF_VALUE
	 * @generated
	 * @ordered
	 */
	CREF(4, "CREF", "CREF"),

	/**
	 * The '<em><b>DFRZ</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DFRZ_VALUE
	 * @generated
	 * @ordered
	 */
	DFRZ(5, "DFRZ", "DFRZ"),

	/**
	 * The '<em><b>MTLF</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #MTLF_VALUE
	 * @generated
	 * @ordered
	 */
	MTLF(6, "MTLF", "MTLF"),

	/**
	 * The '<em><b>CATM</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #CATM_VALUE
	 * @generated
	 * @ordered
	 */
	CATM(7, "CATM", "CATM"),

	/**
	 * The '<em><b>PRTL</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PRTL_VALUE
	 * @generated
	 * @ordered
	 */
	PRTL(8, "PRTL", "PRTL"),

	/**
	 * The '<em><b>REF</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #REF_VALUE
	 * @generated
	 * @ordered
	 */
	REF(9, "REF", "REF"),

	/**
	 * The '<em><b>SBU</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #SBU_VALUE
	 * @generated
	 * @ordered
	 */
	SBU(10, "SBU", "SBU"),

	/**
	 * The '<em><b>UFRZ</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #UFRZ_VALUE
	 * @generated
	 * @ordered
	 */
	UFRZ(11, "UFRZ", "UFRZ"),

	/**
	 * The '<em><b>PSA</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PSA_VALUE
	 * @generated
	 * @ordered
	 */
	PSA(12, "PSA", "PSA"),

	/**
	 * The '<em><b>DRY</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #DRY_VALUE
	 * @generated
	 * @ordered
	 */
	DRY(13, "DRY", "DRY"),

	/**
	 * The '<em><b>FRZ</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #FRZ_VALUE
	 * @generated
	 * @ordered
	 */
	FRZ(14, "FRZ", "FRZ"),

	/**
	 * The '<em><b>NTR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #NTR_VALUE
	 * @generated
	 * @ordered
	 */
	NTR(15, "NTR", "NTR"),

	/**
	 * The '<em><b>PSO</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #PSO_VALUE
	 * @generated
	 * @ordered
	 */
	PSO(16, "PSO", "PSO"),

	/**
	 * The '<em><b>UPR</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #UPR_VALUE
	 * @generated
	 * @ordered
	 */
	UPR(17, "UPR", "UPR");

	/**
	 * The '<em><b>AMB</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>AMB</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #AMB
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int AMB_VALUE = 0;

	/**
	 * The '<em><b>C37</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>C37</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #C37
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int C37_VALUE = 1;

	/**
	 * The '<em><b>CAMB</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CAMB</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CAMB
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CAMB_VALUE = 2;

	/**
	 * The '<em><b>CFRZ</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CFRZ</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CFRZ
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CFRZ_VALUE = 3;

	/**
	 * The '<em><b>CREF</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CREF</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CREF
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CREF_VALUE = 4;

	/**
	 * The '<em><b>DFRZ</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>DFRZ</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DFRZ
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int DFRZ_VALUE = 5;

	/**
	 * The '<em><b>MTLF</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>MTLF</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #MTLF
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int MTLF_VALUE = 6;

	/**
	 * The '<em><b>CATM</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>CATM</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #CATM
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int CATM_VALUE = 7;

	/**
	 * The '<em><b>PRTL</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PRTL</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PRTL
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PRTL_VALUE = 8;

	/**
	 * The '<em><b>REF</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>REF</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #REF
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int REF_VALUE = 9;

	/**
	 * The '<em><b>SBU</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>SBU</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #SBU
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int SBU_VALUE = 10;

	/**
	 * The '<em><b>UFRZ</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>UFRZ</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #UFRZ
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int UFRZ_VALUE = 11;

	/**
	 * The '<em><b>PSA</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PSA</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PSA
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PSA_VALUE = 12;

	/**
	 * The '<em><b>DRY</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>DRY</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #DRY
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int DRY_VALUE = 13;

	/**
	 * The '<em><b>FRZ</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>FRZ</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #FRZ
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int FRZ_VALUE = 14;

	/**
	 * The '<em><b>NTR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>NTR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #NTR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int NTR_VALUE = 15;

	/**
	 * The '<em><b>PSO</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>PSO</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #PSO
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int PSO_VALUE = 16;

	/**
	 * The '<em><b>UPR</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>UPR</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #UPR
	 * @model
	 * @generated
	 * @ordered
	 */
	public static final int UPR_VALUE = 17;

	/**
	 * An array of all the '<em><b>Entity Handling</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final EntityHandling[] VALUES_ARRAY =
		new EntityHandling[] {
			AMB,
			C37,
			CAMB,
			CFRZ,
			CREF,
			DFRZ,
			MTLF,
			CATM,
			PRTL,
			REF,
			SBU,
			UFRZ,
			PSA,
			DRY,
			FRZ,
			NTR,
			PSO,
			UPR,
		};

	/**
	 * A public read-only list of all the '<em><b>Entity Handling</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<EntityHandling> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Entity Handling</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static EntityHandling get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			EntityHandling result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Entity Handling</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static EntityHandling getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			EntityHandling result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Entity Handling</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static EntityHandling get(int value) {
		switch (value) {
			case AMB_VALUE: return AMB;
			case C37_VALUE: return C37;
			case CAMB_VALUE: return CAMB;
			case CFRZ_VALUE: return CFRZ;
			case CREF_VALUE: return CREF;
			case DFRZ_VALUE: return DFRZ;
			case MTLF_VALUE: return MTLF;
			case CATM_VALUE: return CATM;
			case PRTL_VALUE: return PRTL;
			case REF_VALUE: return REF;
			case SBU_VALUE: return SBU;
			case UFRZ_VALUE: return UFRZ;
			case PSA_VALUE: return PSA;
			case DRY_VALUE: return DRY;
			case FRZ_VALUE: return FRZ;
			case NTR_VALUE: return NTR;
			case PSO_VALUE: return PSO;
			case UPR_VALUE: return UPR;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EntityHandling(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //EntityHandling
